#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>

#define LOG "log.txt"

int main()
{
  //O_WRNOLY :只写
  //O_CREAT :创建文件
  //O_TRUNC :再次写入时，清空文件,不加这个选项的时候，是不会对原始内容进行清空的。
  //O_APPEND :再次写入时，不清空文件，在文件内容的后面进行追加写入
  
  //如果我们要打开一个并不存在的文件的时候是需要对权限进行设置的！0666，但是这个也受umask的影响，我们可以自己再设置一下该进程的umask
  //int fd = open(LOG, O_WRONLY | O_CREAT | O_TRUNC, 0666);
  // int fd = open(LOG, O_WRONLY | O_CREAT | O_APPEND, 0666);
  
  umask(0);
  //文件操作 --向文件中写入
  //const char* ag = "holle bite, holle linux!";
  //int cnt = 3;
  //while(cnt)
  //{
  //  char line[128];
  //  snprintf(line, sizeof(line), "%s:%d:wxk\n", ag, cnt--);
  //  
  //  write(fd, line, strlen(line));
  //} 

  //文件操作 --读文件
  int fd = open(LOG, O_RDONLY);
  if(fd == -1) perror("open:");//打开文件失败

  char buf[1024];
  // 这里我们无法做到按行读取，我们是整体读取的。
  int n = read(fd, buf, sizeof(buf)-1);
  //buf[n] = '\0';
  if(n > 0)
  {
    buf[n] = '\0';
    printf("%s", buf);
  }


  close(fd);
  return 0;
}
